package com.smartalarmclock.Model;

public interface IAutoResponse extends IReferencedDataEntity, IReferencingDataEntity {

	public enum Settings {
		Block (1),
		SendAutoSMS (2),
		GoToAnsweringMachine (4);
		
		private int m_Value;
		private Settings(int value) {
			m_Value = value;
		}
		
		public int GetValue() {
			return m_Value;
		}
	}
	
	/**
	 * @return whether the auto response should block the call
	 */
	public boolean IsBlocking();
	
	/**
	 * Sets the blocking state 
	 * @param isBlocking whether the call should be blocked or not
	 */
	public void SetBlocking(boolean isBlocking);
	
	/**
	 * @return whether the auto response should send the call to the answering machine
	 */
	public boolean IsSendingToAnsweringMachine();
	
	/**
	 * Sets the answering machine state 
	 * @param isSendingToAnsweringMachine whether the call should be sent to answering machine.
	 */
	public void SetSendToAnsweringMachine(boolean isSendingToAnsweringMachine);
	
	/**
	 * @return whether the auto response should send an automated SMS
	 */
	public boolean IsSendingAutoSMS();
	
	/**
	 * @return the automated SMS to send
	 */
	public ISMSMessage GetAutoSMS();
	
	/**
	 * Sets the sms message to send automatically 
	 * @param message the sms message to send
	 */
	public void SetSmsToSend(ISMSMessage message);
}
